package top.jiangqiang.qianyi.generator.model;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import lombok.Builder;
import lombok.Data;
import lombok.Value;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.SystemUtil;
import org.jetbrains.annotations.NotNull;

@Builder
@Data
@Value
public class MapperFileConfig {
    /**
     * 文件名称格式化字符串，可使用%s代替当前实体名
     */
    @Builder.Default
    String mapperFormatName = "%sMapper";
    /**
     * 模板路径
     */
    @Builder.Default
    String mapperTemplatePath = "/templates/mapper.java";
    /**
     * 文件路径
     */
    @NotNull("Mapper模板路径不能为空")
    @Builder.Default
    String mapperFilePath = SystemUtil.get("user.dir") + "/generated/mapper";
    /**
     * 是否生成文件
     */
    @Builder.Default
    boolean generateMapperFile = true;
    /**
     * 是否覆盖已有文件（默认 false）
     */
    @Builder.Default
    boolean fileOverride = false;
    /**
     * 父类class
     */
    @Builder.Default
    Class<?> superClass = BaseMapper.class;
    /**
     * 文件名称格式化字符串，可使用%s代替当前实体名
     */
    @Builder.Default
    String xmlFormatName = "%sMapper";
    /**
     * 模板路径
     */
    @NotNull("XML模板路径不能为空")
    @Builder.Default
    String xmlTemplatePath = "/templates/mapper.xml";
    /**
     * 文件路径
     */
    @Builder.Default
    String xmlFilePath = StrUtil.replace(SystemUtil.get("user.dir"), "\\", "/") + "/generated/xml";
    /**
     * 是否生成文件
     */
    @Builder.Default
    boolean generateXmlFile = true;

}
